package com.eedi.framework.template.controller.sys.vo.role;

import com.eedi.framework.common.enums.CommonStatusEnum;
import com.eedi.framework.template.enums.SysTemplateDataScopeEnum;
import com.eedi.framework.template.enums.SysTemplateRoleTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
import java.util.Set;

@Schema(description = "系统界面 - 角色信息 Response VO")
@Data
public class SysTemplateRoleResp {

    @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private String sysTemplateRoleId;

    @Schema(description = "角色名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "管理员")
    private String sysRoleName;

    @NotBlank(message = "角色标志不能为空")
    private String sysRoleCode;

    @Schema(description = "显示顺序不能为空", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
    private Integer sysRoleSort;

    @Schema(description = "状态，参见 CommonStatusEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private CommonStatusEnum sysRoleStatus;

    @Schema(description = "角色类型，参见 RoleTypeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private SysTemplateRoleTypeEnum sysRoleType;

    @Schema(description = "备注", example = "我是一个角色")
    private String sysRoleRemark;

    @Schema(description = "数据范围，参见 DataScopeEnum 枚举类", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private SysTemplateDataScopeEnum sysRoleDataScope;

    @Schema(description = "数据范围(指定部门数组)", example = "1")
    private Set<String> sysRoleDataScopeDeptIds;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
    private LocalDateTime createTime;
    @Schema(description = "修改时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
    private LocalDateTime updateTime;
}
